package leetcode.editor.cn;
//给你一个字符串数组 words ，只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。 
//
// 美式键盘 中： 
//
// 
// 第一行由字符 "qwertyuiop" 组成。 
// 第二行由字符 "asdfghjkl" 组成。 
// 第三行由字符 "zxcvbnm" 组成。 
// 
//
// 
//
// 
//
// 示例 1： 
//
// 
//输入：words = ["Hello","Alaska","Dad","Peace"]
//输出：["Alaska","Dad"]
// 
//
// 示例 2： 
//
// 
//输入：words = ["omk"]
//输出：[]
// 
//
// 示例 3： 
//
// 
//输入：words = ["adsdf","sfd"]
//输出：["adsdf","sfd"]
// 
//
// 
//
// 提示： 
//
// 
// 1 <= words.length <= 20 
// 1 <= words[i].length <= 100 
// words[i] 由英文字母（小写和大写字母）组成 
// 
//
// Related Topics 数组 哈希表 字符串 👍 254 👎 0


import java.util.ArrayList;
import java.util.List;

//leetcode submit region begin(Prohibit modification and deletion)
class Solution223 {
    final String FIRST = "qwertyuiop";
    final String SECOND = "asdfghjkl";
    final String THIRD = "zxcvbnm";

    public String[] findWords(String[] words) {
        List<String> list = new ArrayList<>();
        start:for (String word : words) {
            String lowerCase = word.toLowerCase();
            char at = lowerCase.charAt(0);
            String select = "";
            if (FIRST.indexOf(at) >= 0) {
                select = FIRST;
            } else if (SECOND.indexOf(at) >= 0) {
                select = SECOND;
            } else {
                select = THIRD;
            }

            for (int i = 1; i < lowerCase.length(); i++) {
                if (select.indexOf(lowerCase.charAt(i)) < 0) {
                    continue start;
                }
            }
            list.add(word);
        }
        return list.toArray(new String[0]);
    }
}
//leetcode submit region end(Prohibit modification and deletion)
